import { date } from '../../utils/util'
import Pay from '../../utils/pay'
const app = getApp()
Page({
  data: {
    imgurl: app.globalData.imgurl || '',
    // 人数Personnel
    personnelNum: '',
    // 人数规格
    actions: [],
    // 年龄
    age: '',
    // 当前体验时间
    hour: 0.5,
    // 当前选中时间的小时
    hou: 0,
    // 年月日
    newDate: date(),
    //时间的隐藏
    showTime: false,
    //人员的隐藏
    showPersonnel: false,
    // 最小小时
    minHour: 10,
    // 最大小时18点但是不可选中18点
    maxHour: 17,
    // 当前选中时间
    currentDate: '',
    // 控制input框的显示
    activeNames: [],
    // 过滤时间选项
    filter(type, options) {
      // console.log(type, options)
      if (type === 'minute') {
        return (options = ['00', '30'])
      }
      return options
    },
    // 选择支付方式
    pay_method: 1,
    // 提交节流阀
    flag: false,
  },
  onShow() {
    this.setData({
      flag: false,
    })
  },
  // 控制显示时间的隐藏
  showTime() {
    this.setData({ showTime: true })
  },
  // 时间的变化
  onChangeTime(index, value) {
    console.log(index, value)
  },
  // 确认时间
  _gettime({ detail }) {
    let hou =
      detail.split(':')[0] - 0 + (detail.split(':')[1] - 0 == 30 ? 0.5 : 0)
    this.setData({ currentDate: detail, showTime: false, hou, hour: 0.5 })
  },
  // 增加时间
  onChangeStop({ detail }) {
    this.setData({
      hour: detail - 0,
    })
  },
  // 控制选择人员的隐藏
  showPersonnel() {
    this.setData({ showPersonnel: true })
  },
  //关闭时间
  onCloseTime() {
    this.setData({ showTime: false })
  },
  //关闭人员
  onClosePersonnel() {
    this.setData({ showPersonnel: false })
  },
  // 选择人员的变化
  onSelect({ detail: { price, title, sp_id } }) {
    this.setData({ showPersonnel: false, personnelNum: title, sp_id, price })
  },
  // 确认年龄
  ageBtn(e) {
    console.log(e)
    this.setData({
      activeNames: [],
    })
  },
  // 选择年龄的显示
  onChangeAge(e) {
    this.setData({
      activeNames: e.detail,
    })
  },
  // 年龄的变化
  onChangeInput(e) {
    console.log(e)
    this.setData({
      age: e.detail,
    })
  },
  // 选择支付方式
  _success({ detail }) {
    console.log(detail)
    this.setData({
      pay_method: detail,
    })
  },
  // 点击支付
  async submit() {
    console.log('支付')
    const {
      s_id,
      pay_method,
      newDate,
      currentDate,
      hour,
      sp_id,
      age,
    } = this.data
    let pre_at = new Date(newDate + ' ' + currentDate).getTime() / 1000
    if (!(s_id && pay_method && pre_at && hour && sp_id && age))
      return wx.showToast({
        title: '请填写完整',
        icon: 'none',
        duration: 2000,
      })
    this.setData({
      flag: true,
    })
    let { code, data } = await wx.requestAsync({
      url: '/game/parent/create',
      data: {
        s_id,
        pre_at,
        hour,
        sp_id,
        age,
        pay_method,
      },
    })
    if (code == 0) {
      if (!data) {
        return wx.showToast({
          title: '预约成功',
          icon: 'none',
          duration: 2000,
          success: () => {
            setTimeout(() => {
              this.setData({
                flag: false,
              })
              wx.redirectTo({
                url: '/pages/appointment/appointment',
              })
            }, 1000)
          },
        })
      } else {
        // 调用微信支付接口
        let flag = await Pay({ ...data }, data)
        if (flag || !flag) {
          wx.redirectTo({
            url: '/pages/appointment/appointment',
          })
        }
      }
    } else {
      this.setData({
        flag: false,
      })
    }
  },
  onLoad({ s_id }) {
    this._getPrice(s_id)
    this._getData(s_id)
  },
  // 获取当前亲子游戏价格
  async _getPrice(s_id) {
    let { code, data } = await wx.requestAsync({
      url: '/game/parent/price',
      data: {
        s_id,
      },
    })
    if (code == 0) {
      let actions = data.map((item) => {
        item.name = item.title
        return item
      })
      this.setData({ actions })
    }
  },
  // 获取当前信息
  async _getData(s_id) {
    let { code, data } = await wx.requestAsync({
      url: '/game/parent/info',
      data: {
        s_id,
      },
    })
    if (code == 0) {
      let times = data.time_range.split('-')
      console.log(times);
      
      let array = times.map((item) => {
        let arr = item.split(':')
        return arr[0]
      })
      console.log(array);
      
      this.setData({
        minHour: array[0] - 0,
        maxHour: array[1] - 1,
      })
      this.setData(data)
    }
  },
})
